<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function parseQueryString(url) {
            const urlObj=new URL(url)

            const searchParams=urlObj.searchParams

            const paramsObj={}
            //遍历所有的查询参数（注意：如果有重复的 key，会依次遍历每一个键值对）。
            // 若该 key 已经存在于 result 中，说明这个 key 有多个值：
            // 如果当前 result[key] 不是数组，就转换为数组。
            // 然后将新的 value 添加进去。
            // 如果这个 key 是第一次出现，直接赋值。

            for(let [key,value] of searchParams.entries()){//遍历所有参数
                if(paramsObj.hasOwnProperty(key)){
                    if(!Array.isArray(paramsObj[key])){
                        paramsObj[key]=[paramsObj[key]]//转化为数组
                    }
                    paramsObj[key].push(value)
                }else{
                    paramsObj[key]=value
                }
            }
            return paramsObj
        }

        let url="http://www.example.com/path?name=zhangsan&age=20"
        console.log(parseQueryString(url));
        
    </script>
</body>
</html>